package shujia.day03;

import java.util.Arrays;

/*
    数组元素逆序
 */
public class ArrayDemo8 {
    public static void main(String[] args) {
        int[] arr1 = {11, 22, 33, 44, 55, 66, 77, 88, 99, 100};
        System.out.println("逆序前：");
        printIntArray(arr1);
//        //方式1：找规律进行逆序
//        //第 1 个元素与最后一个元素交换
//        int tmp1 = arr1[0];
//        arr1[0] = arr1[arr1.length-1];
//        arr1[arr1.length-1] = tmp1;
//        //第 2 个元素与倒数第 2 元素交换
//        int tmp2 = arr1[1];
//        arr1[1] = arr1[arr1.length-2];
//        arr1[arr1.length-2] = tmp2;
//        //第 3 个元素与倒数第 3 元素交换
//        int tmp3 = arr1[2];
//        arr1[2] = arr1[arr1.length-3];
//        arr1[arr1.length-3] = tmp3;
        //交换的次数是元素的个数n/2整除
        /**
         *  规律：我们大概能猜到每次变化的是索引值
         */
        //方式1：找规律进行逆序
        //第 1 个元素与最后一个元素交换
//        int tmp1 = arr1[0];
//        arr1[0] = arr1[arr1.length-1-0];
//        arr1[arr1.length-1-0] = tmp1;
//        //第 2 个元素与倒数第 2 元素交换
//        int tmp2 = arr1[1];
//        arr1[1] = arr1[arr1.length-1-1];
//        arr1[arr1.length-1-1] = tmp2;
//        //第 3 个元素与倒数第 3 元素交换
//        int tmp3 = arr1[2];
//        arr1[2] = arr1[arr1.length-1-2];
//        arr1[arr1.length-1-2] = tmp3;
        //使用循环改进交换的过程
//        for (int i = 0; i < arr1.length / 2; i++) {
//            int tmp = arr1[i];
//            arr1[i] = arr1[arr1.length - 1 - i];
//            arr1[arr1.length - 1 - i] = tmp;
//        }

        //方式2：使用两个指针变量进行处理
        for (int front = 0, end = arr1.length - 1; front < end; front++, end--) {
            int tmp = arr1[front];
            arr1[front] = arr1[end];
            arr1[end] = tmp;
        }


        System.out.println("逆序后：");
        printIntArray(arr1);


    }

    public static void printIntArray(int[] array) {
        for (int i = 0; i < array.length; i++) {
            if (i == 0) {
                System.out.print("[" + array[i] + ",");
            } else if (i == array.length - 1) {
                System.out.println(array[i] + "]");
            } else {
                System.out.print(array[i] + ",");
            }
        }
    }
}
